Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Програмування системного таймера

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
РТ
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи
Варіант:
5 1

Частина тексту файла

Прізвище: Ім'я: Група: Варіант: 5 Кафедра САПР Дисципліна: Системне програмування Перевірив: ЗВІТ до лабораторної роботи № 2 на тему “Програмування системного таймера” Мета роботи: Вивчення і дослідження режимів роботи системного таймера. Теоретичні відомості: Встановлення і читання таймера Більшість IBM PC використовують мікросхему таймера 8253 для узгодження імпульсів від мікросхеми системних годинників. Число циклів системних годинників перетворюється в один імпульс, а послідовність цих імпульсів підраховується для визначеного часу, або вони можуть бути подані на гучномовець комп’ютера для генерації звука певної частоти. Мікросхема має три ідентичних незалежних канали, кожний з яких може програмуватися. Мікросхеми 8253 працюють незалежно від процесора. Сучасні процесори співіснують з вбудованими в них таймерами. Фактично, процесор програмує мікросхему і потім повертається до виконання інших операцій. Таким чином 8253 діє як годинник реального часу – вона рахує свої імпульси незалежно від того, що відбувається в комп’ютері. Однак, максимальний програмований інтервал складає приблизно 1/12 секунди. Для підрахунку інтервалів часу в години і хвилини потрібно, щоб імпульси від нульового каналу мікросхеми таймера накопичувалися в змінній, яка знаходиться в області даних BIOS. Це накопичення називають підрахунком часу доби. 18,2 рази в секунду вихід каналу 0 обробляється апаратним перериванням (перериванням таймера), який ненадовго зупиняє процесор і збільшує лічильник часу доби. Число 0 відповідає опівночі 24 годинам; коли лічильник досягає значення еквівалентного 24 годинам, він спрацьовує на 0. Лічильник часу доби використовується в більшості операцій, які зв’язані з часом. Програмування мікросхеми таймера 8253 Для програмування мікросхеми 8253 потрібно виконати три основні кроки. 1. послати в командний регістр (43н) байт; який визначає послідовність бітів, які визначають канал, статус читання, запису, режим операції і форму представлення чисел. 2. для каналу “2” потрібно дозволити сигнал від годинника, встановивши в 1 біт 0 порту з адресом 61н. 3. визначити значення лічильника від 0 до 65535 і помістити його в регістрах (спочатку молодший, а потім старший байт) і переслати його в регістр вводу-виводу каналу (40н-42н). Генерація звуку за допомогою мікросхеми таймера. Частоти музичних нот першої і другої октави октава ноти   до до# ре ре# мі фа фа# соль соль# ля ля# сі до  1 261,83 277,18 293,66 311,13 329,63 349,23 369,99 392 415,30 440 456,16 493,88 523,25  2 523,25 554,37 587,33 622,25 659,26 698,46 739,99 783,99 830,61 880 932,33 987,77 1046,5   Тривалість музичних нот № п/п нота Умовне позначення Тривалість ноти в секундах  1 Ціла / 4  2 Половинна / 2  3 Четвертна / 1  4 Одна восьма / 1/2   Текст програми: DSEG SEGMENT BEAT DB 6,4,8,6,4,8,4,4,4,4,4,8,8,6,4,8,6,4,8,4,4,4,4,4,8,8 ;тривалість нот FREQUENCY DW 1353, 1521, 1521, 1353, 1709, 1709, 1353, 1521, 1521, 1809, 2280, 1353, 1709,1353, 1521, 1521, 1353, 1709, 1709, 1353, 1521, 1521, 1809, 2280, 1353, 1709 MELODY DB 1,3,5,6,8,6,5,3,13,1,3,0FFH; номер частоти нот DSEG ENDS SSEG SEGMENT STACK db 256 dup(0) SSEG ENDS CSEG SEGMENT assume cs:CSEG,ds:DSEG start: mov ax,DSEG mov ds,ax ;---ініціалізація PORT_B EQU 61H COMMAND_REG EQU 43H LATCH2 EQU 42H IN AL,PORT_B ;отримуємо поточний статус OR AL,00000011B ;надаємо доступ динаміку та таймеру OUT PORT_B,AL ;замінюємо байт MOV SI,0 ;ініціалізуємо вказаівник MOV AL,0B6H ;установка для канала 2 OUT COMMAND_REG,AL ;надсилаємо у командний регістр ;---дивимось ноту , отримуємо її частоту і розміщуємо в каналі 2 NEXT_NOTE: LEA BX,MELODY ;берем зміщення для мелодії MOV AL,[BX][SI] ;берем код n-ої ноти рядка CMP AL,0FFH ;перевірка на кінець строки JE NO_MORE ;якщо кінець,то на вихід CBW ;...
Антиботан аватар за замовчуванням

06.06.2018 19:06

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини